gtkentry: Use key controller to track focus changes
authorCarlos Garnacho <carlosg@gnome.org>
Fri, 23 Mar 2018 15:22:05 +0000 (16:22 +0100)
committerCarlos Garnacho <carlosg@gnome.org>
Thu, 5 Apr 2018 17:26:55 +0000 (19:26 +0200)
gtk/gtkentry.c

index e3e108641454982048d0ec5c1a5431e545c025d1..098c5bd53a2e6e697d5935d01d0b4715fbfaa337 100644 (file)
@@ -2571,6 +2571,10 @@ gtk_entry_init (GtkEntry *entry)
                     G_CALLBACK (gtk_entry_key_controller_key_pressed), entry);
   g_signal_connect_swapped (priv->key_controller, "im-update",
                             G_CALLBACK (gtk_entry_schedule_im_reset), entry);
+  g_signal_connect_swapped (priv->key_controller, "focus-in",
+                            G_CALLBACK (gtk_entry_focus_in), entry);
+  g_signal_connect_swapped (priv->key_controller, "focus-out",
+                            G_CALLBACK (gtk_entry_focus_out), entry);
   gtk_event_controller_key_set_im_context (GTK_EVENT_CONTROLLER_KEY (priv->key_controller),
                                            priv->im_context);
 
@@ -3515,20 +3519,6 @@ gtk_entry_event (GtkWidget *widget,
   gdouble x, y;
   gint i = 0;
 
-  if (gdk_event_get_event_type (event) == GDK_FOCUS_CHANGE)
-    {
-      gboolean focus_in;
-
-      gdk_event_get_focus_in (event, &focus_in);
-
-      if (focus_in)
-        gtk_entry_focus_in (widget);
-      else
-        gtk_entry_focus_out (widget);
-
-      return GDK_EVENT_PROPAGATE;
-    }
-
   if (!gdk_event_get_coords (event, &x, &y))
     return GDK_EVENT_PROPAGATE;